Skip to content

fix(agc): reapply pipeline cache persistence with guarded key queries - #15169

Draft
liskeee wants to merge 3 commits into
boykopovar:mainfrom
liskeee:fix/agc-pipeline-binaries-reland
Draft

liskeee wants to merge 3 commits into
boykopovar:mainfrom
liskeee:fix/agc-pipeline-binaries-reland

Conversation

@liskeee

@liskeee liskeee commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

What

I reapply #13931, reverted in #14839: driver pipeline caches survive source updates, and eligible compute pipelines are captured and restored with VK_KHR_pipeline_binary, with ordinary driver-cache fallback. Against merged main d893997f1a I keep main's recorder error handling and debt entries, and link the store test against libSceAgcDriver because DeviceProcLookups moved out of the header. After merging main d893997f1a, the binary layout key also tells main's scratch-pool layouts apart (0, 1 or 2 additional descriptor sets); layouts without a scratch pool keep the same contribution to the key.

New in this PR: global and per-pipeline key queries write into separate, 64-byte-aligned heap scratch followed by a 64-byte guard filled with 0xa5, and a key is accepted only after VK_SUCCESS, an intact guard, the expected sType, a null pNext and a size from 1 to VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR.

 PipelineBinaryStore(...)
   resolve vkGetPipelineKeyKHR ...
-  getKey(device, nullptr, &globalKey)
-  enable if VK_SUCCESS and 1 <= keySize <= 32
+  getKey(device, nullptr, &guardedScratch.key)
+  enable only if VK_SUCCESS, guard intact, sType unchanged, pNext null, 1 <= keySize <= 32
+  copy the validated key into globalKey
+  else: stay disabled, log once, use the driver pipeline cache

A rejected per-pipeline key falls back to an ordinary build for that pipeline. I have not found the cause of the NVIDIA Linux startup crash in the code: the call uses the Khronos function-pointer type from the device resolver, the output structure is initialised, and the feature is enabled before the call. These checks detect malformed keys and writes that reach the guard; they cannot contain arbitrary driver corruption or clobbered registers, and they cannot stop a crash inside the call. APS5_NO_PIPELINE_BINARIES still turns the store off before the call. I am keeping this PR as a draft so it can be checked on the affected machine first.

Tested

Windows, NVIDIA GeForce RTX 4080, driver 610.88. No title or performance claim.

  • main vs this PR, same machine and GPU, ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, ctest -j 1 -V, the 134 existing tests registered in the files this PR touches (pipeline cache, recorder and Vulkan test-device tests): main d893997f1a 134/134, this PR c8244e0269 134/134. The validation layer loaded in both logs, neither reports a missing requested layer, and neither has a VUID- or SYNC-HAZARD- line.
  • Store tests: 12/12 pass. The new cases cover the query arguments, zero, oversized and maximum key sizes, a changed sType or non-null pNext for global and per-pipeline keys, a corrupted guard and the fallback after a rejected global key. The new tests require the added scratch type and IsReady; their passing results do not reproduce the Linux crash. With the startup test, agc_pipeline_binary_vulkan and three agc_pipeline_cache_allocation modes, all 17 tests this PR adds pass under the settings above.
  • agc_driver_pipeline_binary_startup (new): creates the production device with the shader cache enabled in a temporary directory and requires the store to be ready when the device has VK_KHR_pipeline_binary (exit 77 with skipped, the device lacks VK_KHR_pipeline_binary otherwise). Here it prints pipeline binary startup: global-key query completed successfully; store ready; device=NVIDIA GeForce RTX 4080; driver=NVIDIA 610.88.
  • Cache enabled (neither ANYPS5_NO_SHADER_CACHE nor APS5_NO_PIPELINE_BINARIES set, validation layer loaded): 83/83 pass: the startup test, the binary-store and pipeline-cache tests, agc_driver_small_copy_sync, both agc_driver_address_passes tests, the other agc_driver tests that do not disable the cache, and the automatically added agc_driver_pm4_replay fixture (which disables the shader cache itself). No VUID- line. agc_pipeline_binary_vulkan saves binary records for two pipelines and restores both in the next process. On main d893997f1a, the 65 of these tests that exist there, plus the fixture, pass 66/66. The binary round-trip test uses trivial shaders and an empty layout, so it does not test scratch-pool layouts.

This machine never reproduced the crash, so these runs show the path works here, not that the Linux crash is gone. @oneandonlydean, you offered to test a candidate on the affected RTX 4090: could you run this on that installation after building this branch?

env -u ANYPS5_NO_SHADER_CACHE -u APS5_NO_PIPELINE_BINARIES \
  ANYPS5_REQUIRE_VULKAN=1 \
  VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -j 1 -V \
  -R '^(agc_driver_pipeline_binary_startup|agc_pipeline_binary_(vulkan|store.*)|agc_pipeline_cache.*|agc_driver_small_copy_sync|agc_driver_address_passes_(targets_split|draw_transitions))$'

The most useful result for me would be the startup line (store ready), the [pipeline-binary] disabled: unusable global key (...) line, which names why the key was rejected and reports the driver-cache fallback, or a backtrace if vkGetPipelineKeyKHR still crashes. A run without the validation layer, as in your report, would also help. I will mark this ready for review only after that result.

Checklist

🤖 Generated with Claude Code

liskeee and others added 2 commits November 2, 2026 20:06
…naries across updates

Re-apply boykopovar#13931, reverted in boykopovar#14839, including the maintainer's
architecture notes and pipeline-binary skip message.

Preserve main's Recorder TestConfigurationError handling while restoring
the binaryTest constructor argument. Retain main's debt entries.

Link the binary-store test against libSceAgcDriver after main moved
DeviceProcLookups out of the header.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On an NVIDIA Linux driver, device creation crashed right after the global
pipeline-binary key query returned VK_SUCCESS, so boykopovar#13931 was reverted in
boykopovar#14839. The cause is not established. Key queries now write into a guarded
scratch output, and the store is enabled only when the result, sType, pNext,
key size and guard are all valid; otherwise it stays disabled with one log
line and the driver pipeline cache is used. This catches bounded output
overruns and malformed keys, not a driver that corrupts registers.

agc_driver_pipeline_binary_startup creates the production device with the
shader cache enabled and requires the store to be ready where the device
has VK_KHR_pipeline_binary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve the descriptor-layout conflict in VulkanDevice.cpp: keep main's
scratch pool layouts and let the binary key tell 0, 1 or 2 extra sets
apart, so keys of layouts without a scratch pool stay the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xuZ6BonuXDhiVUjiuoLx2
@liskeee

liskeee commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

@oneandonlydean I merged main d893997f1a into this branch and updated the results in the description. When you have time, could you run the command from the description on the affected RTX 4090 and share the startup line or the crash backtrace? I'll keep this as a draft until then.

AI-assisted: yes (Claude Code)

@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Nov 5, 2026
@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 862 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 1368 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 1395 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 1896 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 2434 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 4040 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 4448 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/debt/libSceAgcDriver.md
PR 4472 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 4847 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/user/USAGE.md
PR 5021 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/user/USAGE.md
PR 5371 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 5372 docs/dev/debt/libSceAgcDriver.md
PR 5925 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ARCHITECTURE.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 6146 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6186 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 6187 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 6188 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 6192 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 6194 docs/dev/debt/libSceAgcDriver.md
PR 6209 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 6223 docs/dev/debt/libSceAgcDriver.md
PR 6280 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/debt/libSceAgcDriver.md
PR 6290 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 6412 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ARCHITECTURE.md
docs/dev/debt/libSceAgcDriver.md
PR 6481 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/debt/libSceAgcDriver.md
PR 6548 docs/dev/debt/libSceAgcDriver.md
PR 6549 docs/dev/debt/libSceAgcDriver.md
PR 6743 docs/dev/ARCHITECTURE.md
docs/dev/debt/libSceAgcDriver.md
PR 6782 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 6804 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6808 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/debt/libSceAgcDriver.md
PR 6867 docs/dev/debt/libSceAgcDriver.md
PR 6924 docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 6926 docs/dev/debt/libSceAgcDriver.md
PR 6970 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 6987 docs/dev/debt/libSceAgcDriver.md
PR 6989 docs/dev/debt/libSceAgcDriver.md
PR 6995 docs/dev/debt/libSceAgcDriver.md
PR 7002 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7085 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/debt/libSceAgcDriver.md
PR 7256 docs/dev/debt/libSceAgcDriver.md
PR 7275 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 7369 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 7449 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 7457 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
PR 7464 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 7508 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 7514 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 7604 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 7622 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/PipelineCache.cpp
PR 7642 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
core/libs/prx/libSceAgcDriver/tests/cmake/agc_pipeline_cache_allocation_tests.cmake
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 7643 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 7668 docs/dev/debt/libSceAgcDriver.md
PR 7684 docs/dev/ARCHITECTURE.md
PR 7689 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 8004 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 8089 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 8212 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ARCHITECTURE.md
PR 8246 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 8484 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
PR 8592 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/debt/libSceAgcDriver.md
PR 8707 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/debt/libSceAgcDriver.md
PR 9012 docs/dev/ENVIRONMENT.md
PR 9020 docs/dev/debt/libSceAgcDriver.md
PR 9248 docs/dev/ENVIRONMENT.md
PR 9289 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 9335 docs/dev/debt/libSceAgcDriver.md
PR 9345 docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 9356 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 9387 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 9508 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
core/libs/prx/libSceAgcDriver/tests/cmake/agc_pipeline_cache_allocation_tests.cmake
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 9592 docs/dev/debt/libSceAgcDriver.md
PR 9712 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 9748 docs/dev/debt/libSceAgcDriver.md
PR 9852 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 9875 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 9884 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
PR 9893 docs/dev/debt/libSceAgcDriver.md
PR 9895 docs/dev/debt/libSceAgcDriver.md
PR 9915 docs/dev/debt/libSceAgcDriver.md
PR 9950 docs/dev/debt/libSceAgcDriver.md
PR 9999 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 10043 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 10049 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10064 docs/dev/debt/libSceAgcDriver.md
PR 10193 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
core/libs/prx/libSceAgcDriver/tests/cmake/agc_pipeline_cache_allocation_tests.cmake
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 10233 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/debt/libSceAgcDriver.md
PR 10351 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10359 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/debt/libSceAgcDriver.md
PR 10442 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
PR 10443 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 10469 docs/dev/debt/libSceAgcDriver.md
PR 10479 docs/user/USAGE.md
PR 10492 docs/dev/debt/libSceAgcDriver.md
PR 10497 docs/dev/debt/libSceAgcDriver.md
PR 10652 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 10678 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 10743 docs/dev/debt/libSceAgcDriver.md
PR 10757 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 10792 docs/user/USAGE.md
PR 10861 docs/user/USAGE.md
PR 10867 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 10894 docs/dev/ENVIRONMENT.md
PR 10920 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 11346 docs/dev/debt/libSceAgcDriver.md
PR 11435 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 11436 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 11483 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 11485 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 11551 docs/dev/debt/libSceAgcDriver.md
PR 11587 docs/dev/debt/libSceAgcDriver.md
PR 11825 docs/dev/debt/libSceAgcDriver.md
PR 12324 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 12452 docs/dev/debt/libSceAgcDriver.md
PR 12544 docs/dev/ENVIRONMENT.md
PR 12565 docs/dev/debt/libSceAgcDriver.md
PR 12567 docs/dev/debt/libSceAgcDriver.md
PR 12568 docs/dev/debt/libSceAgcDriver.md
PR 12678 docs/user/USAGE.md
PR 12745 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
PR 12746 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 12792 docs/dev/debt/libSceAgcDriver.md
PR 12828 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 12840 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 12849 docs/dev/ENVIRONMENT.md
PR 12855 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 12863 docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 12895 docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 12904 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 12911 docs/user/USAGE.md
PR 12930 docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 12944 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 12970 docs/dev/ENVIRONMENT.md
docs/user/USAGE.md
PR 12994 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 13147 docs/dev/debt/libSceAgcDriver.md
PR 13148 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 13248 docs/dev/debt/libSceAgcDriver.md
PR 13251 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
PR 13263 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 13599 docs/dev/debt/libSceAgcDriver.md
PR 13707 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 13793 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 13809 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 13863 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 13920 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 13928 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
core/libs/prx/libSceAgcDriver/tests/cmake/agc_pipeline_cache_allocation_tests.cmake
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 13929 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
core/libs/prx/libSceAgcDriver/tests/cmake/agc_pipeline_cache_allocation_tests.cmake
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 13963 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13991 docs/dev/debt/libSceAgcDriver.md
PR 14051 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ENVIRONMENT.md
PR 14070 docs/user/USAGE.md
PR 14076 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 14137 docs/dev/debt/libSceAgcDriver.md
PR 14212 docs/dev/debt/libSceAgcDriver.md
PR 14217 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 14218 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 14260 docs/dev/ENVIRONMENT.md
PR 14262 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 14296 docs/dev/debt/libSceAgcDriver.md
PR 14298 docs/user/USAGE.md
PR 14330 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
PR 14344 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 14367 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 14561 docs/dev/debt/libSceAgcDriver.md
PR 14628 docs/dev/debt/libSceAgcDriver.md
PR 14709 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 14794 docs/dev/ENVIRONMENT.md
PR 14871 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 14944 docs/dev/debt/libSceAgcDriver.md
PR 14950 docs/dev/debt/libSceAgcDriver.md
PR 14963 docs/dev/debt/libSceAgcDriver.md
PR 14964 docs/dev/debt/libSceAgcDriver.md
PR 14969 docs/dev/debt/libSceAgcDriver.md
PR 14982 docs/dev/debt/libSceAgcDriver.md
PR 15015 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 15032 docs/user/USAGE.md
PR 15058 docs/dev/debt/libSceAgcDriver.md
PR 15059 docs/dev/ENVIRONMENT.md
PR 15136 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 15206 docs/user/USAGE.md
PR 15245 docs/user/USAGE.md
PR 15327 docs/dev/debt/libSceAgcDriver.md
PR 15343 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 15398 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 15423 core/libs/prx/libSceAgcDriver/CMakeLists.txt
PR 15440 core/libs/prx/libSceAgcDriver/tests/PipelineCacheFailures.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_pipeline_cache_allocation_tests.cmake
PR 15441 core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
PR 15450 docs/dev/debt/libSceAgcDriver.md
PR 15456 core/libs/prx/libSceAgcDriver/CMakeLists.txt
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
docs/user/USAGE.md
PR 15487 docs/dev/debt/libSceAgcDriver.md
PR 15520 docs/dev/ENVIRONMENT.md
PR 15525 docs/dev/debt/libSceAgcDriver.md
PR 15529 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 15535 docs/user/USAGE.md
PR 15548 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 15568 docs/user/USAGE.md
PR 15569 docs/dev/ENVIRONMENT.md
PR 15570 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
PR 15572 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
docs/dev/ENVIRONMENT.md
PR 15574 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 15621 docs/dev/debt/libSceAgcDriver.md
PR 15658 docs/dev/debt/libSceAgcDriver.md
PR 15670 docs/dev/debt/libSceAgcDriver.md
PR 15671 docs/dev/ENVIRONMENT.md
PR 15674 docs/dev/ENVIRONMENT.md
PR 15688 docs/dev/debt/libSceAgcDriver.md
PR 15690 docs/dev/debt/libSceAgcDriver.md
PR 15693 docs/dev/debt/libSceAgcDriver.md
PR 15702 docs/dev/debt/libSceAgcDriver.md
PR 15707 docs/dev/debt/libSceAgcDriver.md
PR 15710 docs/dev/debt/libSceAgcDriver.md
PR 15719 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
PR 15729 docs/dev/debt/libSceAgcDriver.md
PR 15738 docs/dev/ENVIRONMENT.md
PR 15746 docs/user/USAGE.md
PR 15792 core/libs/prx/libSceAgcDriver/CMakeLists.txt
core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
core/libs/prx/libSceAgcDriver/tests/cmake/agc_driver_recorder_tests.cmake
PR 15828 docs/user/USAGE.md
PR 15845 docs/dev/debt/libSceAgcDriver.md
PR 15859 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ARCHITECTURE.md
docs/dev/debt/libSceAgcDriver.md
PR 15868 docs/dev/debt/libSceAgcDriver.md
PR 15883 docs/dev/debt/libSceAgcDriver.md
PR 15917 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/ENVIRONMENT.md
PR 15918 docs/dev/ENVIRONMENT.md
PR 15919 docs/dev/ENVIRONMENT.md
PR 15941 docs/dev/debt/libSceAgcDriver.md
PR 15973 docs/user/USAGE.md
PR 15974 docs/dev/ENVIRONMENT.md
PR 15986 docs/dev/debt/libSceAgcDriver.md
PR 16011 docs/dev/debt/libSceAgcDriver.md
PR 16013 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 16021 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
PR 16058 docs/dev/debt/libSceAgcDriver.md
PR 16059 docs/dev/debt/libSceAgcDriver.md
PR 16086 docs/dev/debt/libSceAgcDriver.md
PR 16115 docs/dev/ARCHITECTURE.md
docs/dev/ENVIRONMENT.md
PR 16116 docs/dev/ENVIRONMENT.md
PR 16184 docs/dev/debt/libSceAgcDriver.md
PR 16206 docs/user/USAGE.md
PR 16217 docs/dev/ENVIRONMENT.md
PR 16252 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 16253 docs/dev/debt/libSceAgcDriver.md
PR 16260 docs/dev/debt/libSceAgcDriver.md
PR 16263 docs/dev/debt/libSceAgcDriver.md
PR 16286 core/libs/prx/libSceAgcDriver/tests/Recorder.cpp
docs/dev/ENVIRONMENT.md
PR 16294 docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 16301 docs/dev/debt/libSceAgcDriver.md
PR 16345 docs/dev/debt/libSceAgcDriver.md
PR 16363 docs/dev/debt/libSceAgcDriver.md
PR 16364 docs/dev/debt/libSceAgcDriver.md
PR 16365 docs/dev/debt/libSceAgcDriver.md
PR 16371 docs/dev/ENVIRONMENT.md
PR 16372 docs/dev/ENVIRONMENT.md
PR 16373 docs/dev/debt/libSceAgcDriver.md
PR 16427 docs/dev/ENVIRONMENT.md
docs/dev/debt/libSceAgcDriver.md
PR 16463 docs/dev/debt/libSceAgcDriver.md
PR 16474 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 16483 docs/dev/debt/libSceAgcDriver.md
PR 16495 core/libs/prx/libSceAgcDriver/Execution/include/VulkanDevice.hpp
core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
PR 16501 docs/dev/debt/libSceAgcDriver.md
PR 16544 core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp
docs/dev/debt/libSceAgcDriver.md
PR 16555 docs/dev/debt/libSceAgcDriver.md
PR 16556 docs/dev/debt/libSceAgcDriver.md
PR 16557 docs/dev/debt/libSceAgcDriver.md

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Hi @liskeee,

Ran your command on the affected RTX 4090 machine (NVIDIA driver 610.57.04, Linux), at head c8244e0269 merged with current main, one test at a time.

  • With the validation layer loaded (VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation): 28/28 passed, no VUID- line, no crash.
  • Same command without the layer: 28/28 passed.
  • Startup line in both runs: pipeline binary startup: global-key query completed successfully; store ready; device=NVIDIA GeForce RTX 4090; driver=NVIDIA 610.57.04
  • The [pipeline-binary] disabled: ... lines in the logs come from two of the store tests, which exercise the disabled paths (old validation layer, unusable key); the startup test itself reports store ready.

So vkGetPipelineKeyKHR did not crash here and the store came up on both runs. This only covers the startup/store tests in your command, not a full game boot.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* build docs needs rebase Conflicts with main, rebase needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants